1. Field of the Invention
The present invention relates generally to partitioning of a computer system into domains, and more particularly programming the domain configuration registers of a multi-node computer system into domains
2. Description of Background Art
Multi-node computer networks are often partitioned into domains, with each domain functioning as an independent machine with its own address space. An operating system runs separately on each domain. Partitioning permits the resources of a computer network to be efficiently allocated to different tasks, to provide flexibility in the use of a computer system, and to provide isolation between computer resources to limit the effects of hardware or software faults in one part of the network from interfering with the operation of the entire system.
FIG. 1 shows an illustration of a multimode computer system including central processing unit (CPU) nodes 105, memory nodes 110, and input/output (I/O) nodes 115 coupled to a system interconnect 120. System interconnect 120 may include components, such as packet routers and/or crossbar switches, to permit partitioning of the system into domains, with each domain functioning as an independent computer system. Partition definition registers 125, also known as domain control registers, are used to partition the multimode system into domains 130, 135, 140 each having its own local domain registers 145, 150, 155. Routing tables are typically used to facilitate routing of messages within a domain. The local domain registers can include a variety of different types of conventional registers, such as configuration space registers, control registers, status registers and error logging registers.
However, conventional domain partitioning has the drawback that the domain partitioning can become deleteriously affected by software and hardware errors of any one domain. First, the software running in an individual domain 130, 135, or 140 may have a defect (a “bug”) that results in one domain interfering with the operation of another domain, such as if a defect in the software of a domain 130 erroneously writes data into a location that interferes with the operation of another domain 135. Second, a malicious user (a “hacker”) can intentionally input software code that corrupts the function of one domain or the domain partitioning. Third, a hardware fault may result in an individual domain failing, resulting in the entire system entering a nonfunctional state.
Therefore, there is a need for a domain partitioning system and method with improved control of domain partitioning.